<script setup lang="ts">
import { onMounted, onUnmounted } from 'vue'
import AMapLoader from '@amap/amap-jsapi-loader'

let map = null

onMounted(() => {
  window._AMapSecurityConfig = {
    securityJsCode: 'c7dc22dc94ac37a6230829485ef20914',
  }
  AMapLoader.load({
    key: 'bdebe5a82dfec09f64594bd9a8a4ad67', // 申请好的Web端开发者Key，首次调用 load 时必填
    version: '2.0', // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
    plugins: ['AMap.Scale'], //需要使用的的插件列表，如比例尺'AMap.Scale'，支持添加多个如：['...','...']
  })
    .then((AMap) => {
      map = new AMap.Map('container', {
        // 设置地图容器id
        viewMode: '3D', // 是否为3D地图模式
        zoom: 11, // 初始化地图级别
        center: [116.397428, 39.90923], // 初始化地图中心点位置
      })
      AMap.plugin(['AMap.ToolBar', 'AMap.Driving', 'AMap.Scale'], function () {
        //异步同时加载多个插件
        const toolbar = new AMap.ToolBar() //创建工具条插件实例
        map.addControl(toolbar) //添加工具条插件到页面
        const driving = new AMap.Driving() //创建驾车路线规划实例
        driving.search(/*参数*/) //调用插件实例上的方法
        const scale = new AMap.Scale() // 比例尺
        map.addControl(scale)
      })
    })
    .catch((e) => {
      console.log(e)
    })
})

onUnmounted(() => {
  map?.destroy()
})
</script>

<template>
  <div id="container"></div>
</template>

<style scoped>
#container {
  width: 100%;
  height: 600px;
}
</style>
